package model

import "RoccBlog/global"

// GeneratorTable
// @Description: 生成表
type GeneratorTable struct {
	Id               int               `json:"id" gorm:"primaryKey;autoIncrement"`
	StructName       string            `json:"structName" gorm:"unique;type:varchar(60)"`
	EnableSearch     bool              `json:"enableSearch"`
	EnablePrivate    bool              `json:"enablePrivate"`
	FunctionName     string            `json:"functionName" gorm:"varchar(60)"`
	GeneratorColumns []GeneratorColumn `json:"generatorColumns" gorm:"constraint:OnDelete:CASCADE"`
}

// GeneratorColumn
// @Description: 生成表字段
type GeneratorColumn struct {
	GeneratorTableID int `json:"generatorTableId"`
	Id               int `json:"id" gorm:"primaryKey;autoIncrement"`
	// ColumnCommentName 字段备注名
	ColumnCommentName string `json:"columnCommentName" gorm:"type:varchar(60)"`
	// ColumnName 字段名
	ColumnName string `json:"columnName" gorm:"type:varchar(60)"`
	// ColumnType 字段类型
	ColumnType string `json:"columnType" gorm:"type:varchar(30)"`
	// GormType GORM类型
	GormType string `json:"gormType" gorm:"type:varchar(30)"`
	// Required 是否必填
	Required bool `json:"required"`
	// Search 是否搜索
	Search bool `json:"search"`
	// SearchModel 搜索模式
	SearchModel string `json:"searchModel"`
	// Show 是否显示
	Show bool `json:"show"`
	// Edit 是否编辑
	Edit bool `json:"edit"`
	// EditComponent 编辑组件
	EditComponent int `json:"editComponent"`
	// DataSourceType 数据源类型
	DataSourceType string `json:"dataSourceType"`
	// DataKey 数据源key
	DataKey string `json:"dataKey"`
}

func init() {
	global.RegisterModel(&GeneratorTable{})
	global.RegisterModel(&GeneratorColumn{})
}
